home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / lists / gem / l_1199 / 859 < prev    next >
Internet Message Format  |  1994-08-27  |  4KB

  1. Date: Tue, 19 Jul 1994 02:20:39 -0400 (EDT)
  2. From: Timothy Miller <millert@undergrad.csee.usf.edu>
  3. Subject: Amodal Dialogs, etc. 
  4. To: gem-list@world.std.com
  5. In-Reply-To: <Pine.3.89.9407182352.A5860-0100000@mhc.mtholyoke.edu>
  6. Message-Id: <Pine.3.87.9407190239.A15671-0100000@grad>
  7. Mime-Version: 1.0
  8. Precedence: bulk
  9.  
  10. Well, with all this discussion of amodal dialogs, etc., I have been
  11. prompted to write my own.  At first, it was just to see if I could do it,
  12. but I added it to a program I'd written and was very pleased with the
  13. results.  There was discussion on Gem-list about how difficult it is to
  14. handle sliders on some amodal dialog package or other. 
  15.  
  16. So I decided to put code into my handler that would handle sliders with
  17. the requirements that it should be as easy and transparent to the developer
  18. as possible and placing as much information as possible in the resource
  19. file, not the program source code.  After a little design work, I came up
  20. with something I liked, but I figure it's probably not a new way of doing
  21. it. 
  22.  
  23. In the resource editor, you begin by creating a BOXTEXT object and put 
  24. into it 4 6-digit numbers corresponding to the following:
  25.   1.  lowest value for result
  26.   2.  highest value for result
  27.   3.  current value
  28.   4.  size of slider relative to high/low values and used for distance to
  29.       page "up" or "down".
  30. Plus a single character specifying:
  31.   5.  '+' sign if slider physical size will be relative to (4) within range.
  32.       Anything else will keep slider size constant at what is set in RSC 
  33.       file.
  34. Assign to this object an extended object type of 1 for vertical or 6 for 
  35. horizontal.
  36.  
  37. On top of that (and obscuring it), you place a left/up button (extended 
  38. object type 3), a right/down button (type 4), and a slider box/frame (type 
  39. 2).  On top of the box, place a slider (type 5).  NONE of the objects 
  40. should have any flags set (ie. do not make them touch-exit).  All objects 
  41. should have the same proper height or width, depending on orientation, 
  42. and they should all have a border size of -1.  Only the parent BOXTEXT 
  43. object need be given a name, unless the slider, for example, is a BOXTEXT 
  44. that displays a value.
  45.  
  46. For the program source code, there is little to worry about.  If the 
  47. slider position and size in the resource file do not correspond to the 
  48. numbers you placed in the parent BOXTEXT, then you can kick them into 
  49. place by calling a routine immediately after you initialize the dialog.
  50.  
  51. Whenever a slider event occurs, it is of no concern to the programmer what
  52. button was pressed or whatever, so my routines return the object number of
  53. the parent like any other button press elsewhere on the dialog so that the
  54. programmer can pick the numbers out of the TEDINFO for that TEXTBOX at his 
  55. leisure.  The numbers are automatically maintained by my code, so you 
  56. need only retrieve the position, and can, if desired, leave the other 
  57. numbers as they were entered in the resource editor.
  58.  
  59.  
  60. In addition to this, I decided that I wanted to keep the title of the 
  61. window stored in the resource file also.  When the dialog is initialized, 
  62. the object number of any object with a TEDINFO is passed to the service 
  63. routine and the title is retreived from there.
  64.  
  65.  
  66. Tell me what you think.  Is this too complicated?  If so, what better way 
  67. do you suggest?  I intend to release my source code for use by Atari 
  68. developers, although I have not determined how I will handle 
  69. compensation.  (I could charge developers who use it a small one-time fee.)
  70.  
  71.  
  72.